package day05;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 要求用户输入若干员工信息，格式为：
 * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
 * 例如:
 * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
 * 然后将每个员工信息解析成Emp对象。并存入到一个List集合中。
 * 并对集合排序，然后输出每个员工信息。
 * 
 * 再根据员工的入职时间排序，入职晚的在前，早的在后并
 * 输出每个员工的信息。
 * @author Bonnie
 *
 */
public class Test03 {
    public static void main(String[] args) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        // * 要求用户输入若干员工信息，格式为：
        // * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;....
        // * 例如:
        // * 张三,25,男,5000,2006-02-15;李四,26,女,6000,2007-12-24;...
        System.out.println("请依次输入员工信息(同一行内，格式为：姓名，年龄，性别，薪资，入职时间；姓名，年龄...)");
        Scanner scanner = new Scanner(System.in);
        String total = scanner.nextLine();
        String[] strings = total.split(";");
        // * 然后将每个员工信息解析成Emp对象。并存入到一个List集合中。
        List<Emp> empList = new ArrayList<>();
        for (String empStr : strings){
            String[] message = empStr.split(",");
            try {
                empList.add(new Emp(message[0], Integer.parseInt(message[1]), message[2], Integer.parseInt(message[3]), sdf.parse(message[4])));
            } catch (ParseException e) {
                System.out.println("有日期输入格式错误!");
            }
        }
        // * 并对集合排序，然后输出每个员工信息。
        Collections.sort(empList);
        System.out.println(empList);
        // * 再根据员工的入职时间排序，入职晚的在前，早的在后并
        empList.sort(new Comparator<Emp>() {
            @Override
            public int compare(Emp o1, Emp o2) {
                return o1.getHiredate().compareTo(o2.getHiredate());
            }
        });
        // * 输出每个员工的信息。
        System.out.println(empList);
    }

}
